﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Sispe.Entities;
using Microsoft.Practices.Unity;
using Sispe.BussinesLogic;

using System.Web.Security;
using DotNetOpenAuth.AspNet;
using Microsoft.Web.WebPages.OAuth;
using WebMatrix.WebData;

namespace Sispe.Mvc4.Controllers
{
    public class LiquidacionesController : Controller
    {
        //
        // GET: /Liquidaciones/

        [Dependency]
        public IHojaDeRecorridoBL hojaBL { get; set; }

        public ActionResult Index()
        {
            List<HOJA_FIN_RECORRIDO_LIQUIDACIONES> liquidacionesList = new List<HOJA_FIN_RECORRIDO_LIQUIDACIONES>();

            if (Request.IsAuthenticated)
            {
                var DNI = User.Identity.Name;
                var usuario = hojaBL.GetUserByDniTrabajador(DNI);

                if (usuario != null && usuario.VerLiquidaciones == true)
                {
                    if (usuario.IdAreaLiquidacion == 3)
                    {
                        liquidacionesList = hojaBL.GetAllFromHojaRecorrido(true, "");
                        //return View(liquidacionesList);
                    }
                    else
                        if (usuario.IdAreaLiquidacion == 9)
                        {
                            liquidacionesList = hojaBL.GetAllFromHojaRecorrido(false, "");
                            //return View(liquidacionesList);
                        }
                }
                else
                {
                    ViewBag.ResultMessage = "Usted no puede ver Liquidaciones Pendientes!";
                    //return RedirectToAction("Index");
                }
            }
            else
            {
                ViewBag.ResultMessage = "Inicie sesion por favor!";
            }
            return View(liquidacionesList);
            
            //ViewBag.ResultMessage = "Inicie sesion por favor!";
            //return View(liquidacionesList);

        }

        [HttpPost]
        public ActionResult Index(string trabajador = "")
        {
            List<HOJA_FIN_RECORRIDO_LIQUIDACIONES> liquidacionesList = new List<HOJA_FIN_RECORRIDO_LIQUIDACIONES>();

            if (Request.IsAuthenticated)
            {
                var DNI = User.Identity.Name;
                var usuario = hojaBL.GetUserByDniTrabajador(DNI);

                if (usuario != null && usuario.VerLiquidaciones == true)
                {
                    if (usuario.IdAreaLiquidacion == 3)
                    {
                        liquidacionesList = hojaBL.GetAllFromHojaRecorrido(true, trabajador);
                        //return View(liquidacionesList);
                    }
                    else
                        if (usuario.IdAreaLiquidacion == 9)
                        {
                            liquidacionesList = hojaBL.GetAllFromHojaRecorrido(false, trabajador);
                            //return View(liquidacionesList);
                        }
                }
                else
                {
                    ViewBag.ResultMessage = "Usted no puede ver Liquidaciones Pendientes!";
                    //return RedirectToAction("Index");
                }
            }
            else
            {
                ViewBag.ResultMessage = "Inicie sesion por favor!";
                //return View(liquidacionesList);
            }

            //ViewBag.ResultMessage = "Inicie sesion por favor!";
            return View(liquidacionesList);

        }



        public ActionResult AprobarLiquidacion(int liquidacionId = 0)
        {
            if (Request.IsAuthenticated)
            {

                var DNI = User.Identity.Name;
                var usuario = hojaBL.GetUserByDniTrabajador(DNI);

                if (usuario != null && usuario.VerLiquidaciones == true)
                {
                    if (usuario.IdAreaLiquidacion == 3) //operaciones
                    {
                        var _liquidacion = hojaBL.GetHojaFinRecorridoLiquidacionById(liquidacionId);

                        _liquidacion.OP_VistoBueno = true;
                        hojaBL.AprobarArea(_liquidacion);
                        //return RedirectToAction("Index");
                    }
                    else
                        if (usuario.IdAreaLiquidacion == 9) //administracion general
                        {
                            var _liquidacion = hojaBL.GetHojaFinRecorridoLiquidacionById(liquidacionId);

                            _liquidacion.ADGRAL_VistoBueno = true;
                            hojaBL.AprobarArea(_liquidacion);
                            //return RedirectToAction("Index");
                        }
                }
                else
                {
                    ViewBag.ResultMessage = "Por favor inicie sesion!";
                    //return RedirectToAction("Index");
                }

            }

            return RedirectToAction("Index");
            //return View();
        }


    }
}
